PythonのopenaiライブラリからAzure OpenAI Serviceのエンドポイントを呼び出すサンプルを実行してみた
こんちには。
データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。
今回は、Pythonのopenaiライブラリを使ってAzure OpenAIのgpt-3.5を使う方法を紹介したいと思います。
公式サンプル
以下のopenaiライブラリの公式サンプルに従ってやっていきます。
Azure上の環境準備
以下を参考に構築します。
必要なのは以下の2点になります。
- Azure OpenAI Serviceのリソース作成
- キーおよびエンドポイントの情報が必要になります
- gpt-35-turbo (version 0301)のデプロイ
- モデルデプロイ名が必要になります
クライアント実行環境
Google Colaboratoryを使います。ハードウェアアクセラレータは無し、ラインタイム仕様も標準です。
ローカル環境で実行されても良いと思います。
Pythonのバージョンは以下です。
!python --version
Python 3.10.11
また、openaiは以下のようにインストールします。
!pip install openai
インストールされたライブラリのバージョンは以下です。
!pip freeze | grep -e "openai"
openai==0.27.6
環境変数の設定
お好きな方法でよいのですが、環境変数をpython-dotenvを使って読み込みます。
!pip install python-dotenv
以下を.env
ファイルに書き込みます。
!echo 'OPENAI_API_KEY="<トークン>"' >.env !echo 'OPENAI_API_BASE="<エンドポイント>"' >>.env !echo 'OPENAI_API_TYPE="azure"' >>.env !echo 'OPENAI_API_VERSION="2023-03-15-preview"' >>.env
トークンはAzure OpenAI Serviceのキー1、エンドポイントはAzure OpenAI Serviceのエンドポイントを入力します。
その後、環境変数をロードします。
from dotenv import load_dotenv load_dotenv()
実行
以下のコードでgpt-3.5を稼働させることができます。
response = openai.ChatCompletion.create( deployment_id="<デプロイメントID>", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Knock knock."}, {"role": "assistant", "content": "Who's there?"}, {"role": "user", "content": "Orange."}, ], ) print(response.choices[0].message)
ここで、デプロイメントIDは、モデルがgpt-35-turbo (version 0301)
となっているモデル デプロイ名を入力します。
以下のような結果が得られました。
{ "content": "Orange who?", "role": "assistant" }
まとめ
いかがでしたでしょうか。
ほぼOpenAI側のAPIと同じ使用感でopenaiモジュールから使用可能でした。
OpenAI側との違いについては以下の記事にもまとめられていますので、参考にされてください。
本記事が、Azure OpenAI Serviceをお使いになられる方の参考になれば幸いです。